--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit 88d1b7d2d1b06a632b90888e908872d215dc9dcb
Parents : fb5dcf0
Author : Mark Qvist <bc7291552be7a58f361522990465165c>
Date : 2026-05-02T13:38:01+02:00
Improved rngit page rendering
Changes
Diff
diff --git a/RNS/Utilities/rngit/pages.py b/RNS/Utilities/rngit/pages.py
index 5c706639..81e98466 100644
--- a/RNS/Utilities/rngit/pages.py
+++ b/RNS/Utilities/rngit/pages.py
@@ -52,7 +52,7 @@ class NomadNetworkNode():
PATH_REFS = "/page/refs.mu"
BLOB_SIZE_LIMIT = 256 * 1024
- TREE_ENTRIES_PER_PAGE = 100
+ TREE_ENTRIES_PER_PAGE = 1000
COMMITS_PER_PAGE = 20
SHOW_DIFF_BY_DEFAULT = True
GIT_COMMAND_TIMEOUT = 5
@@ -61,16 +61,22 @@ class NomadNetworkNode():
U_ICON_SEP = "โข"
U_ICON_FOLDER = "๐"
+ U_ICON_FILE = "๐"
U_ICON_BRANCH = "โ"
U_ICON_TAG = "โ"
U_ICON_COMMITS = "๐น"
NF_ICON_SEP = "โข"
NF_ICON_FOLDER = "๓ฐ"
+ NF_ICON_FILE = "๏ถ"
NF_ICON_BRANCH = "๓ฐฌ"
NF_ICON_TAG = "๓ฐผ"
NF_ICON_COMMITS = "๓ฐ"
+ CLR_FOLDER = "`Ffe6"
+ CLR_FILE = "`F66d"
+ CLR_DIM = "`F666"
+
def __init__(self, owner=None):
if not owner: raise TypeError(f"Invalid owner {owner} for {self}")
@@ -104,6 +110,7 @@ class NomadNetworkNode():
if self.use_nerdfonts:
if name == "sep": return self.NF_ICON_SEP
elif name == "folder": return self.NF_ICON_FOLDER
+ elif name == "file": return self.NF_ICON_FILE
elif name == "branch": return self.NF_ICON_BRANCH
elif name == "commits": return self.NF_ICON_COMMITS
elif name == "tag": return self.NF_ICON_TAG
@@ -112,6 +119,7 @@ class NomadNetworkNode():
else:
if name == "sep": return self.U_ICON_SEP
elif name == "folder": return self.U_ICON_FOLDER
+ elif name == "file": return self.U_ICON_FILE
elif name == "branch": return self.U_ICON_BRANCH
elif name == "commits": return self.U_ICON_COMMITS
elif name == "tag": return self.U_ICON_TAG
@@ -364,6 +372,7 @@ class NomadNetworkNode():
return self.render_template(content, st=st)
content_parts = []
+ nav_parts = []
# Breadcrumb navigation
breadcrumb_parts = [ self.m_link("Node", self.PATH_INDEX),
@@ -382,10 +391,7 @@ class NomadNetworkNode():
else: breadcrumb_parts.append("") # Could be "root" or something, but a bit confusing
breadcrumb = " / ".join(breadcrumb_parts)
- content_parts.append(self.m_align(breadcrumb, "left") + "\n\n")
-
- content_parts.append(self.m_heading(f"Tree: {tree_path or 'root'}", 1))
- content_parts.append(f"`F666Ref: {ref} ({resolved_ref[:8]})`f\n\n")
+ nav_parts.append(breadcrumb + "\n")
# Get tree entries
entries = self.get_tree_entries(repo_path, resolved_ref, tree_path)
@@ -393,7 +399,9 @@ class NomadNetworkNode():
if entries is None: content_parts.append("Error reading directory contents.\n")
elif not entries: content_parts.append("Empty directory.\n")
else:
- # Sort: Directories first, then files, both alphabetically
+ i_file = self.icon("file")
+ i_folder = self.icon("folder")
+
def sort_key(entry):
is_dir = entry["type"] in ("tree", "commit") # commit = submodule
return (not is_dir, entry["name"].lower())
@@ -406,17 +414,18 @@ class NomadNetworkNode():
end_idx = start_idx + self.TREE_ENTRIES_PER_PAGE
page_entries = entries[start_idx:end_idx]
- if total_entries > self.TREE_ENTRIES_PER_PAGE:
- content_parts.append(f"`F666Showing {start_idx + 1}-{min(end_idx, total_entries)} of {total_entries} entries`f\n\n")
-
- content_parts.append(self.m_heading("Contents", 2))
+ content_parts.append(self.m_heading(f"Contents: {ref} ({resolved_ref[:8]})", 2))
content_parts.append("\n")
+ if total_entries > self.TREE_ENTRIES_PER_PAGE:
+ content_parts.append(f"{self.CLR_DIM}Showing {start_idx + 1}-{min(end_idx, total_entries)} of {total_entries} entries`f\n\n")
+
# Parent directory link (if not at root)
if tree_path:
parent_path = "/".join(tree_path.rstrip("/").split("/")[:-1])
- parent_link = self.m_link("../ (parent directory)", self.PATH_TREE, g=group_name, r=repo_name, ref=ref, path=parent_path)
- content_parts.append(f" {parent_link}\n")
+ ilink = self.m_link(f"{i_folder}", self.PATH_TREE, g=group_name, r=repo_name, ref=ref, path=parent_path)
+ parent_link = self.m_link(" ../", self.PATH_TREE, g=group_name, r=repo_name, ref=ref, path=parent_path)
+ content_parts.append(f"{self.CLR_FOLDER}{ilink}`f{parent_link}\n")
for entry in page_entries:
entry_name = entry["name"]
@@ -426,32 +435,31 @@ class NomadNetworkNode():
# Directory
if entry_type == "tree":
subpath = tree_path + "/" + entry_name if tree_path else entry_name
- link = self.m_link(entry_name + "/", self.PATH_TREE, g=group_name, r=repo_name, ref=ref, path=subpath)
- content_parts.append(f" `F66d๐`f {link}\n")
+ ilink = self.m_link(f"{i_folder}", self.PATH_TREE, g=group_name, r=repo_name, ref=ref, path=subpath)
+ link = self.m_link(f" {entry_name}/", self.PATH_TREE, g=group_name, r=repo_name, ref=ref, path=subpath)
+ content_parts.append(f"{self.CLR_FOLDER}{ilink}`f{link}\n")
# Submodule
elif entry_type == "commit":
- content_parts.append(f" `F66dโง`f {entry_name} `F666(submodule)`f\n")
+ content_parts.append(f"{self.CLR_FOLDER}โง`f {entry_name} `F666(submodule)`f\n")
# Symlink
elif entry_type == "link":
target = entry.get("link_target", "unknown")
- content_parts.append(f" `F66dโณ`f {entry_name} `F666โ {self.m_escape(target)}`f\n")
+ content_parts.append(f"{self.CLR_FILE}โณ`f {entry_name} `F666โ {self.m_escape(target)}`f\n")
# File (blob)
else:
size_str = self.format_size(entry.get("size", 0))
subpath = tree_path + "/" + entry_name if tree_path else entry_name
- link = self.m_link(entry_name, self.PATH_BLOB, g=group_name, r=repo_name, ref=ref, path=subpath)
- content_parts.append(f" `F66d๐`f {link} `F666({size_str})`f\n")
+ ilink = self.m_link(f"{i_file}", self.PATH_BLOB, g=group_name, r=repo_name, ref=ref, path=subpath)
+ link = self.m_link(f" {entry_name}", self.PATH_BLOB, g=group_name, r=repo_name, ref=ref, path=subpath)
+ content_parts.append(f"{self.CLR_FILE}{ilink}`f{link} `F666({size_str})`f\n")
content_parts.append("\n")
# Pagination controls
if total_entries > self.TREE_ENTRIES_PER_PAGE:
- content_parts.append(self.m_heading("Navigation", 2))
- content_parts.append("\n")
-
nav_links = []
if page_num > 0:
nav_links.append(self.m_link("ยซ Previous", self.PATH_TREE, g=group_name, r=repo_name, ref=ref, path=tree_path, page=page_num - 1))
@@ -462,12 +470,13 @@ class NomadNetworkNode():
if end_idx < total_entries:
nav_links.append(self.m_link("Next ยป", self.PATH_TREE, g=group_name, r=repo_name, ref=ref, path=tree_path, page=page_num + 1))
- content_parts.append(" " + " | ".join(nav_links) + "\n")
+ content_parts.append(" | ".join(nav_links) + "\n")
if content_parts[-1] == "\n": content_parts[-1] = ""
page_content = "".join(content_parts)
- return self.render_template(page_content, st=st)
+ nav_content = "".join(nav_parts)
+ return self.render_template(page_content, nav_content=nav_content, st=st)
def serve_blob_page(self, path, data, request_id, link_id, remote_identity, requested_at):
st = time.time()
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ